草庐IT

awk 过滤列

全部标签

php - MYSQL 根据其他两个表中的结果总和过滤表

我的数据库中有以下表格:names:id|name|---|----------|1|Mark|2|George|3|Liza|4|Tai|evaluationname_id|score|--------|----------|1|30|1|100|2|20|3|40|3|50|4|40|4|50|bonusesname_id|bonus|--------|----------|1|5|1|1|1|60|2|2|2|8|4|12|4|50|虽然你看到每个名字都有一个或两个评价,以及许多(或没有)奖金。我需要MYSQL查询以获得最佳evaluation.score并将其与同一个人的所有b

mysql - 从数据库中获取数据并过滤结果

我正在使用此查询获取前50条记录。但是,在同一个表中有一个名为read的标志,我只想返回前50条未被read的记录(即isread=false)。我怎样才能做到这一点?谁能给我关于所需查询的想法?我试过使用子查询。SELECT*FROMnotificationWHEREtoUserId='email'ORDERBYidDESCLIMIT50; 最佳答案 尝试向您的WHERE子句添加AND条件:userID='email'ANDflag=true。这将只返回具有true值的用户,您可以根据您的限制条件获得前50名。

php - 在 laravel 数据透视表上过滤

我在Laravel中有两个表与数据透视表相连。这两个表是users和roles,数据透视表称为role_user。数据透视表还包含两个额外的字段:start和stop。这样我就可以跟踪用户过去拥有的角色。现在我想创建一个查询来获取当前拥有role_id=3的所有users。首先我使用了WherePivot,但显然那是bugged.我现在使用Eloquent进行了以下查询:Role::with('User')->where('id','=','3')->where('role_user.start','where('role_user.stop','>',date('Y-m-d'))->

mysql - 在数组上过滤具有列条件的行

我有一张表my_table:idx_idtype-----------131a214b331c412c531b612c714a我想返回x_id的type满足数组arr中所有元素的所有行。编辑:但是,该数组中的实际值及其数量是未知的,但可能是type列的值。arr中始终至少有一个值。所以对于arr=[b,c],我应该得到以下结果:idx_idtype-----------331c531b我将如何编写查询以获得这样的结果?注意:我不是很熟悉sql命令,所以如果它没有意义,请帮助我编辑我的问题。 最佳答案 select*frommy_ta

mysql - 如何在大查询中过滤日期

我正在尝试弄清楚如何在大查询中正确过滤日期。例如在MSsql中我这样做:Selecta,b,datefromtable_1wheredate>='2017-05-01'在大查询中,过滤器不起作用,它会返回所有记录。我试过了Selecta,b,datefromtable_1wheredate>=Date("2017-05-01")Selecta,b,datefromtable_1wheredate>=2017-05-01Selecta,b,datefromtable_1wheredate>=timestamp('2017-05-01')这些都不起作用。文档提到创建一个分区表,但我不确定这

mysql - 从大型数据集中过滤掉记录的最佳方法是什么

我在一张表中有大约500,000条用户记录,另一张表包含被其他用户特别阻止的用户的记录(即哪个用户阻止了哪个用户)。我正在使用以下查询来过滤当前用户的用户记录,这些用户记录不包含来自被阻止表的被阻止用户。SELECT*fromdemouserwhereidnotin(selectblockedidfromdemoblockwhereuserid=1)它很慢,执行查询大约需要2秒。有没有更有效的方法来过滤记录而不用将500,000条用户记录与阻止表进行比较以从结果中删除被阻止的用户? 最佳答案 我会把它写成不存在:selectdu.*

php - 如何使用mysql Php过滤记录

我正在使用mysql和Php,我正在获取以下格式的数据Array([country]=>India[total]=>23)Array([country]=>USA[total]=>1)Array([country]=>Japan[total]=>1)我只是想,如果任何国家的总匹配,那么应该像下面的格式一样得到相同的数组Array([country]=>India[total]=>23)Array([country]=>USA,Japan[total]=>1)这是我的mysql查询SELECTcountry,COUNT(*)astotalFROMdoctorsGROUPBYcountry

mysql - 使用多对多表 MySQL 进行过滤

我有以下表格(为简单起见省略了其他表格)。1代表所有人,2代表那些人参加的运动。我正在使用php来允许用户查看人员列表。他们可以按人名或他们参加的运动进行过滤。所以,我希望能够看到所有打棒球和踢足球的人。createtablepeople(idint,namevarchar(50));createtablepeople_to_sports(personIDint,sportIDint,primarykey(personID,sportID));基本上我的问题是,我如何使用people_to_sports获取所有参加运动1和运动2的人的列表?我有一个sqlfiddlehere.谢谢!

mysql - 过滤组合多列的重复项

示例表|name|year|latitude|longitude||--------------|------|----------|-----------||Cleveland|1800|10|11||Cleveland|1810|10|11||Medina|1811|12|13||Dayton|1812|14|15||Sandusky|1105|50|50||MountVernon|1813|50|50|我的目标是什么我想选择latitude和longitude的每个唯一组合。所以我想过滤掉任何重复的对。我还需要过滤掉所有年份小于1500的记录。这是我要实现的子集:|name|ye

mysql - 当日期在 varchar 中时在 mysql 中过滤月份

我有一个名为id和publish_date的2列。publish_date为varchar格式(例如2015-11-0820:11:59)。我使用以下代码根据月份过滤结果:SELECT*FROM'table'WHEREMONTH(STR_TO_DATE(publish_date,'%d/%m/%Y'))=11MySQL返回一个空结果集。这是怎么回事? 最佳答案 这是一个使用TIMESTAMP()的解决方案。SELECT*FROM`table`WHEREMONTH(TIMESTAMP(publish_date))=11演示:mysql